perm filename IO.FAI[OLD,LCS] blob sn#058114 filedate 1974-01-08 generic text, type T, neo UTF8
00300		TITLE MIXIO ; ********* AUG 13,73 *********
00400		INTERNAL GETFI2,FASTI2,ZBIT,USETI
00500	
00700	
00900	
01000		CH←12
01100		CH2←11
01200		CH3←13
01300	
01400	DEFINE ERROR (MSG)
01500	<	JSA 16,.ERROR
01600		JUMP [ASCIZ/MSG/
01700	]
01800	>
01900	
02000	REGS:	BLOCK 20
02100	
02200	; CALL USETI(WDS/128)
02300	
02400	USETI:	0
02500		MOVE 1,@(16)
02600		USETI CH2,(1)
02700		JRA 1,1(16)
02800	
02900	; CALL ZBIT(<INPUT ARRAY>,<OUTPUT ARRAY>)
03000	;              (256 WDS)     (512 WDS)
03100	
03200	ZBIT:	0
03300		MOVE 2,(16)
03400		MOVE 1,1(16)
03500		HRLI 2,-=256
03600	
03700	LOOP:	HLRE 0,(2)
03800		FSC 0,233	;FLOAT IT
03900		MOVEM 0,(1)	; GETS 512 18-BIT SAMPLES OUT OF 256 WDS.
04000		HRRE 0,(2)
04100		FSC 0,233
04200		MOVEM 0,1(1)
04300		ADDI 1,2
04400		AOBJN 2,LOOP
04500		JRA 16,1(16)
04600	
04700	;CALL GETFI2(<FILE>)
04800	
04900	GETFI2:	0
05000		MOVE 0,@0(16)
05100		MOVEM 0,FILNAM
05200		JSA 16,INTFIZ
05300		MOVE 0,[SIXBIT/DMD/]
05400		MOVEM 0,DIR+1
05500		JSA 16,LKUP
05600		SKIPA
05700		JRST GETF3
05800		SETZM DIR+1
05900		JSA 16,LKUP
06000		0
06100	GETF3:	JRA 16,1(16)
06200	
06300	LKUP:	0
06400		SETZM DIR+2
06500		SETZM DIR+3
06600		LOOKUP CH3,DIR
06700		JRA 16,0(16)
06800		JRA 16,1(16)
06900	
07000	INTFIZ:	0	;INITS DSK FOR INPUT
07100		MOVEI REGS
07200		BLT REGS+3
07300		INIT CH3,17
07400		SIXBIT/DSK/
07500		0
07600		ERROR <CAN'T INIT DSK!>
07700		JRST INTF4
07800	
07900	DIR:	BLOCK 4
08000	
08100	
08200	;CALL FASTI2(<ARRAY>,<NO. WORDS>)
08300	
08400	FASTI2:	0
08500		HRRZ 0,0(16)
08600		SUBI 0,1
08700		MOVEM 0,COM
08800		MOVN 0,@1(16)
08900		HRLM 0,COM
09000		INPUT CH3,COM
09100		STATZ CH3,740000
09200		0
09300		JRA 16,2(16)
09400	
09500	COM:	OCT 0,0
09600	COM1:	0
09700	BLKNUM:	0
09800	
10700	INTF4:	MOVE 0,FILNAM#
10800		MOVEM 0,FN#
10900		MOVE 1,[POINT 7,FN]
11000	INTF3:	MOVE 2,[POINT 6,DIR]
11100		SETZM DIR
11200		MOVEI 3,5
11300	INTF1:	ILDB 0,1
11400		CAIN 0," "
11500		JRST INTF2
11600		SUBI 0,40
11700		IDPB 0,2
11800		SOJG 3,INTF1
11900	INTF2:	HRLZI REGS
12000		BLT 3
12100		JRA 16,0(16)
12200	
12300	.ERROR:	0
12400		OUTSTR [ASCIZ/?
12500	/]				;MAKE SURE HE CAN SEE HIS ERROR
12600		OUTSTR @(16)		;OUTPUT ERROR MESSAGE
12700		CALLI 1,12		;LET USER CONTI2UE
12800		JRA 16,1(16)
45000		INTERNAL PUTFI2,FASTO2,FINFI2
45100	;CALL PUTFI2(<FI2E>)
45200	
45300	PUTFI2:	0
45400		MOVE 0,@0(16)
45500		MOVEM FILNAM
45600		JSA 16,INTFIL
45700		MOVE 0,[SIXBIT/DMD/]
45800		MOVEM 0,DIR+1
45900		SETZM DIR+2
46000		SETZM DIR+3
46100		ENTER CH,DIR
46200		0
46300		JRA 16,1(16)
46400	
46500	
46600	INTFIL:	0
46700		MOVEI REGS
46800		BLT REGS+3
46900		INIT CH,17
47000		SIXBIT/DSK/
47100		0
47200		0
47300		MOVE 0,FILNAM#
47400		MOVEM 0,FN#
47500		MOVE 1,[POINT 7,FN]
47600		MOVE 2,[POINT 6,DIR]
47700		SETZM DIR
47800		MOVEI 3,5
49100		JRST INTF1
49200	;CALL FASTO2(<ARRAY>,<NO. OF WORDS>)
49300	
49400	FASTO2: 0
49500		HRRZ 0,0(16)
49600		SUBI 0,1
49700		MOVEM 0,COM
49800		MOVN 0,@1(16)
49900		HRLM 0,COM
50000		OUTPUT CH,COM
50100		STATZ CH,740000
50200		0
50300		JRA 16,2(16)
50400	
50500	
50600	
50700	;CALL FINFI2
50800	
50900	FINFI2:	0
51000		CLOSE CH,0
51100		STATZ CH,740000
51200		0
51300		RELEASE CH,0
51400		JRA 16,0(16)
52400		END